package com.tfswue.lh.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tfswue.lh.entity.User;
import com.tfswue.lh.mapper.UserMapper;
import com.tfswue.lh.service.UserService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

/**
 * 用户服务实现类
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    
    /**
     * 根据ID获取用户（带缓存）
     * @param id 用户ID
     * @return 用户信息
     */
    @Override
    @Cacheable(
            value = "dataCache",
            key = "#id",
            unless = "#result == null"
    )
    public User getById(java.io.Serializable id) {
        return super.getById(id);
    }
    
    /**
     * 更新用户（更新缓存）
     * @param entity 用户实体
     * @return 是否成功
     */
    @Override
    @CachePut(
            value = "dataCache",
            key = "#entity.id"
    )
    public boolean updateById(User entity) {
        return super.updateById(entity);
    }
    
    /**
     * 删除用户（清除缓存）
     * @param id 用户ID
     * @return 是否成功
     */
    @Override
    @CacheEvict(
            value = "dataCache",
            key = "#id"
    )
    public boolean removeById(java.io.Serializable id) {
        return super.removeById(id);
    }
}